package com.wtx.fitness.service;

import com.wtx.fitness.entity.Score;

import java.util.List;
import java.util.Map;

/**
 * 成绩服务接口
 */
public interface ScoreService {
  /**
   * 获取所有成绩
   */
  List<Score> getAllScores();

  /**
   * 根据ID获取成绩
   */
  Score getScoreById(Integer id);

  /**
   * 根据学生ID获取成绩
   */
  List<Score> getScoresByStuId(String stuId);

  /**
   * 根据项目ID获取成绩
   */
  List<Score> getScoresByItemId(Integer itemId);

  /**
   * 根据项目ID获取成绩数据（Map格式）
   * 返回包含score字段的Map列表，方便统计分析
   */
  List<Map<String, Object>> getScoreMapsByItemId(Integer itemId);

  /**
   * 查询性别分组的合格率
   */
  List<Map<String, Object>> getPassRateByGender();

  /**
   * 获取项目的成绩分布
   */
  List<Map<String, Object>> getScoreDistribution(Integer itemId);

  /**
   * 添加成绩
   */
  int addScore(Score score);

  /**
   * 批量添加成绩
   */
  int batchAddScores(List<Score> scores);

  /**
   * 更新成绩
   */
  int updateScore(Score score);

  /**
   * 删除成绩
   */
  int deleteScore(Integer id);

  /**
   * 删除学生所有成绩
   */
  int deleteScoresByStuId(String stuId);

  /**
   * 检查学生是否有成绩记录
   * 
   * @param stuId 学生学号
   * @return 有成绩记录返回true，没有返回false
   */
  boolean hasScoresByStuId(String stuId);
}